#include <header.h>
#define FILE_TYPE_FILE 0
#define FILE_TYPE_DIR  1
//fileType=0表示文件，fileType=1表示目录
//连接错误检查宏
#define MYSQL_CONNECT_CHECK(cond, db, msg) \
    do { \
        if (cond) { \
            printf("%s Error: %s\n", msg, mysql_error(db)); \
            mysql_close(db); \
            return -1; \
        } \
    } while (0)

//查询错误检查宏
#define MYSQL_QUERY_CHECK(cond, db, msg) \
    do { \
        if (cond) { \
            printf("%s Error: %s\n", msg, mysql_error(db)); \
            return; \
        } \
    } while (0)
typedef struct client_s{
    char userName[1024];
    int currentDirId;
}client_t;
typedef struct metadata_s{
    char fileName[128];
    char userName[128];
    int parentId;   // 默认-1开始
    int fileType; //0目录 1文件
    char path[1024];
    char hashValue[1024];
    int isDeleted;
    int refCount;
}metadata_t;
//建立连接mysql
int mysqlConnect();
//初始化元数据
int initUserRoot(MYSQL *mysql, const char *userName);
//插入数据库（核心）
int insertValue(MYSQL *mysql,metadata_t  *meta);
//根据父id获取目录路径
int  getParentPath(MYSQL *mysql, int parentId, char *parentPath);
//拼接完整路径
int  buildFullPath(MYSQL *mysql, int parentId, const char *fileName, char *fullPath);
//根据绝对路径获取文件id
int  getFileIdByPath(MYSQL *mysql, const char *userName, const char *path, int type);

